/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.com.cotelasa.scp.controlador;

import java.io.Serializable;
import javax.faces.event.ActionEvent;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;
import pe.com.cotelasa.common.controlador.MBGenerico;
import pe.com.cotelasa.scp.common.IObserver;
import pe.com.cotelasa.scp.common.ISubject;
import pe.com.cotelasa.scp.controlador.backingBean.BKComponenteFindCompraFacturacion;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.dominio.service.IServicioCompraFacturacion;
import pe.com.cotelasa.scp.entidad.CompraFacturacion;
import org.apache.log4j.Logger;
import java.util.logging.Level;
import org.springframework.beans.factory.annotation.Autowired;
import pe.com.cotelasa.seguridad.controlador.backingBean.BKSession;

/**
 *
 * @author WINDOWS 7
 */
@SuppressWarnings("serial")
@Named(value = "MBComponenteFindCompraFacturacion")
@Scope("request")
public class MBComponenteFindCompraFacturacion extends MBGenerico implements ISubject, Serializable  {
    
    private static Logger logger = Logger.getLogger(MBComponenteFindCliente.class);
    
    @Inject
    private BKComponenteFindCompraFacturacion bk;
    @Inject
    private IServicioCompraFacturacion servicio;
    @Autowired
    BKSession session;
    
    public void inicializarBusqueda(ActionEvent actionEvent) {
        bk.getListaCompraFacturacion().clear();
        bk.setCompraFacturacionSeleccionado(new CompraFacturacion());
        bk.getCompraFacturacionSeleccionado().setTipoCompPago((Integer)actionEvent.getComponent().getAttributes().get("tipo"));
        bk.getCompraFacturacionSeleccionado().setIdEmpresa(session.getEmpresa());
        System.out.println("tipo: "+bk.getCompraFacturacionSeleccionado().getTipoCompPago());
    }
    
    public void cargarCompraFacturacion() {
        try {
            
            bk.setListaCompraFacturacion(servicio.listarFacturasActivas());
        } catch (ServiceException ex) {
            logger.error(ex.getMessage(), ex);
        }
    }

    public void buscarCompraFacturacion() {
        try {
            bk.getCompraFacturacionSeleccionado().setNumeroFactura(bk.getNumero());
            bk.setListaCompraFacturacion(servicio.listarCompraFacturacionPorFiltro(bk.getCompraFacturacionSeleccionado()));
        } catch (ServiceException ex) {
            logger.error(ex.getMessage(), ex);
        }

    }

    public void clearObserver() {
        bk.getObservers().clear();
    }

    @Override
    public void addObserver(IObserver observador) {
        bk.addObservers(observador);
    }

    @Override
    public void notificarObservadores() {
        for (IObserver observer : bk.getObservers()) {
            observer.actualizarObservador(bk.getCompraFacturacionSeleccionado());
        }
    }

}
